class Solution {
    // public static void move(int cur, int[] nums){
    //     for( int i = cur ; cur+1 < nums.length ; i++,cur++ ){
    //         nums[cur] = nums[cur+1];
    //     }
    // }
    // public   int removeDuplicates(int[] nums) {
    //     int size = nums.length;
    //     int i = 0, cur = i +1 ;
    //         while(cur < size){
    //             if(nums[i] == nums[cur]){
    //                 move(cur , nums);
    //                 size--;
    //             }
    //             if(nums[i] != nums[cur]){
    //                 i++;
    //                 cur++;
    //             }
    //         }
    //         return size;
    // }
    public   int removeDuplicates(int[] nums) {
        //空数组
        if( nums.length == 0 || nums == null ){
            return 0;
        }
        int p = 0, q = p+1;

        while(q < nums.length){
            if(nums[q] != nums[p]){
                p++;
                if(q-p>0){  //q!=p
                    nums[p] = nums[q];
                }
            }
            q++;
        }
        return p+1;
    }
}